home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- from sys import version_info
-
- try:
- from hashlib import md5
- except ImportError:
- from md5 import md5
-
- if version_info[0:2] > (2, 2):
- from unicodedata import normalize
- else:
- normalize = None
- from urlparse import urlparse, urljoin, urldefrag
- from rdflib.Identifier import Identifier
- from rdflib.compat import rsplit
-
- class URIRef(Identifier):
- '''
- RDF URI Reference: http://www.w3.org/TR/rdf-concepts/#section-Graph-URIref
- '''
- __slots__ = ()
-
- def __new__(cls, value, base = None):
- if base is not None:
- ends_in_hash = value.endswith('#')
- value = urljoin(base, value, allow_fragments = 1)
- if ends_in_hash:
- if not value.endswith('#'):
- value += '#'
-
-
-
-
- try:
- rt = unicode.__new__(cls, value)
- except UnicodeDecodeError:
- rt = unicode.__new__(cls, value, 'utf-8')
-
- return rt
-
-
- def n3(self):
- return '<%s>' % self
-
-
- def concrete(self):
- if '#' in self:
- return URIRef('/'.join(rsplit(self, '#', 1)))
- return self
-
-
- def abstract(self):
- if '#' not in self:
- (scheme, netloc, path, params, query, fragment) = urlparse(self)
- if path:
- return URIRef('#'.join(rsplit(self, '/', 1)))
- if not self.endswith('#'):
- return URIRef('%s#' % self)
- return self
- '#' not in self
- return self
-
-
- def defrag(self):
- if '#' in self:
- (url, frag) = urldefrag(self)
- return URIRef(url)
- return self
-
-
- def __reduce__(self):
- return (URIRef, (unicode(self),))
-
-
- def __getnewargs__(self):
- return (unicode(self),)
-
-
- def __eq__(self, other):
- if isinstance(other, URIRef):
- return unicode(self) == unicode(other)
- return False
-
-
- def __str__(self):
- return self.encode('unicode-escape')
-
-
- def __repr__(self):
- return "rdflib.URIRef('%s')" % str(self)
-
-
- def md5_term_hash(self):
- d = md5(str(self))
- d.update('U')
- return d.hexdigest()
-
-
-